package day05;

// 练习day05
// 跳跃次数（min）

public class Main1 {
    // 最小跳跃次数
    public int jump(int[] nums) {
        // 跳的步数
        int steps = 0;
        // 目标索引位置，只要新找到就会进行更新，知道来到起始位置0
        int position = nums.length-1;
        while(position > 0) {
            // 从前往后开始遍历，因为要确保索引最小，这样就可以使得跳跃次数最小
            // 最远只需要到position位置就行，后面的说明已经有保障
            for (int i = 0; i < position; i++) {
                if(i+nums[i] >= position) {
                    // 此时就说明一步可以到达
                    steps++;
                    // 然后进行更新position位置
                    position = i;
                    // i需要从0下标重新开始
                    break;
                }
            }
        }
        return steps;
    }

    public static void main(String[] args) {

    }
}
